@怪人
2年前 提问
1个回答

软件模糊测试的方法有什么

007bug
2年前

软件模糊测试的方法有以下这些:

  • 预生成测试用例:需要理解对象规约支持的数据结构和可接受的范围,然后对应生成测试边界条件或是违反规约的测试用例。生成测试用例很费神,但可复用。用完用例,则测试结束。

  • 随机生成输入:效率最低,但可快速识别目标是否有非常糟糕的代码。

  • 手工协议变异测试:比随机生成更加初级。其优点是可充分发挥自己过去的经验和“直觉”。常用于Web应用安全测试。

  • 变异或强制性测试:模糊器从一个有效的协议样本或是数据格式样本开始,持续不断地打乱数据包或是文件中的每一个字节、字、双字或是字符串。虽然该方法浪费了CPU资源,但是不需要对应用进行研究,并且整个模糊测试过程可以完全自动化。

  • 自动协议生成测试:需要先对应用进行研究,理解和解释协议规约或文件定义。但是,这种方法并不基于协议规约或文件定义创建硬编码的测试用例,而是创建一个描述协议规约如何工作的文法。例如,SPIKE和SPIKEfile工具都是这类测试的典型例子,采用SPIKE脚本描述协议或是文件格式,并使用一个模糊测试引擎来创建输入数据。